// @copyright 2017-2018 zzu_softboy <zzu_softboy@163.com>
//
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// Created by softboy on 2018/01/19.

#if !PDK_PP_IS_ITERATING

#include "pdk/stdext/preprocessor/Cat.h"
#include "pdk/stdext/preprocessor/Iteration.h"

//#define NO_FLAGS

//#define PDK_PP_ITERATION_PARAMS_1 (3, (1, 10, "IterationTest.h"))
//#include PDK_PP_ITERATE()
//#undef NO_FLAGS

//#define PDK_PP_ITERATION_PARAMS_1 (4, (1, 5, "IterationTest.h", 0x0001))
//#include PDK_PP_ITERATE()

//#define PDK_PP_ITERATION_PARAMS_1 (4, (1, 5, "IterationTest.h", 0x0002))
//#include PDK_PP_ITERATE()

//#ifdef NO_FLAGS
//struct PDK_PP_CAT(X, PDK_PP_ITERATION()) {
//    BEGIN
//        PDK_PP_ITERATION() >= PDK_PP_ITERATION_START() &&
//        PDK_PP_ITERATION() <= PDK_PP_ITERATION_FINISH()
//    END
//};
//# elif PDK_PP_ITERATION_DEPTH() == 1 \
//    && PDK_PP_ITERATION_FLAGS() == 0x0001
//struct PDK_PP_CAT(Y, PDK_PP_ITERATION()) { };
//# elif PDK_PP_ITERATION_DEPTH() == 1 \
//    && PDK_PP_ITERATION_FLAGS() == 0x0002
//# define PDK_PP_ITERATION_PARAMS_2 (3, (1, PDK_PP_ITERATION(), "IterationTest.h"))
//# include PDK_PP_ITERATE()
//elif PDK_PP_ITERATION_DEPTH() == 2 \
//    && PDK_PP_FRAME_FLAGS(1) == 0x0002
//struct PDK_PP_CAT(Z, PDK_PP_CAT(PDK_PP_ITERATION(), PDK_PP_RELATIVE_ITERATION(1))) { };
//# else
//# error should not get here!
//#endif

#endif 
